package cz.pecinovsky.česky.oopnz._115_;
//Příliš žluťoučký kůň úpěl ďábelské ódy

import cz.pecinovsky.česky.oopnz.správce.Elipsa;
import cz.pecinovsky.česky.oopnz.správce.IKreslený;
import cz.pecinovsky.česky.oopnz.správce.Kreslítko;

// %I+ <119
//import cz.pecinovsky.česky.oopnz.tvary_03_implementují_ITvar.Elipsa;
// %I-

import cz.pecinovsky.česky.oopnz.utility.IO;
import cz.pecinovsky.česky.oopnz.utility.Barva;


//%%+  +++++ Konec ignorovaného počátečního textu +++++
//%X+ xxxxx Začátek přeskakovaného textu xxxxx
/*******************************************************************************
 *<pre>
 * Předchozí: Prázdná v projektu 016z_02_Tvary
 *
 * Projekt  017z_02_Tvary
 *   ~ Přejmenování třídy
 *   + Konstruktory Světlo(int,int) + Světlo(int,int,Barva)
 *
 * Projekt  018z_02_Tvary
 *   + Atribut žárovka
 *   ~ Konstruktory ukládají odkaz na elipsu do atributu žárovka
 *                         a odkaz na barvu do atributu barva
 *   ~ Změněn název parametru barva na b (dokud se nenaučíme this)
 *
 * Projekt  019z_11_Správce
 *   ~ Třída převedena do projektu ovládaného správcem plátna
 *   + Implementace rozhraní IKreslený
 *     + Přidání metoda Nakresli(Kreslítko) vyžadované rozhraním
 *
 * Projekt  020z_11_Správce => Pokračuje v novém souboru
 *</pre>
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
public class Světlo_117_119
{ static
//%X- ----- Konec přeskakovaného textu -----


//%I+ <119
//public class Světlo
//%I-
//%X+ <119
public class Světlo implements IKreslený
//%X-
{
//%X+ <118
    private Elipsa žárovka;
    private Barva  barva;


//%X-
    public Světlo()
    {
//%I+ <118
//        new Elipsa();
//%I-
//%X+ <118
        žárovka = new Elipsa();
        barva   = žárovka.getBarva();
//%X-
    }


    public Světlo(int x, int y)
    {
//%I+ <118
//        new Elipsa(x, y, 50, 50);
//%I-
//%X+ <118
        žárovka = new Elipsa(x, y, 50, 50);
        barva   = žárovka.getBarva();
//%X-
    }


//%I+ <118
//    public Světlo(int x, int y, Barva barva)
//%I-
//%X+ <118
    public Světlo(int x, int y, Barva b)
//%X-
    {
//%I+ <118
//        new Elipsa(x, y, 50, 50, barva);
//%I-
//%X+ <118
        barva   = b;
        žárovka = new Elipsa(x, y, 50, 50, barva);
//%X-
    }
//%X+ <118


    public void zhasni()
    {
        žárovka.setBarva(Barva.ČERNÁ);
    }


    public void rozsviť()
    {
        žárovka.setBarva(barva);
    }


    public void blikni()
    {
        rozsviť();
        IO.čekej(500);
        zhasni();
    }
//%X-
//%X+ <119


    /***************************************************************************
     * Prostřednictvím dodaného kreslítka vykreslí obraz své instance.
     *
     * @param kreslítko Kreslítko, které nakreslí instanci
     */
    @Override
    public void nakresli(Kreslítko kreslítko)
    {
        žárovka.nakresli(kreslítko);
    }
//%X-
}

//%%-  ----- Začátek ignorovaného závěrečného textu -----
//%== //Takto se označí řádek, jenž bude odkomentován (vhodné např. pro importy)
//Je-li na 6 pozici mezera, odmaže se také

//== TESTY A METODA MAIN =======================================================
    private Světlo_117_119() {}


//    /***************************************************************************
//     * Testovací metoda.
//     */
//    public static void test()
//    {
////        junit.textui.TestRunner.run(suite());
////        junit.textui.TestRunner.run(new Třída("test"));
////        Run.tests(Třída.class,
////                "testPosuny", "testPlynuléPosuny");
////        System.exit(0);
//    }
//    /** @param args Parametry příkazového řádku - nepoužívané. */
//    public static void main( String[] args )  {  test();  }
}
